package com.xy.xylive.domain;

import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 直播对象 live
 * 
 * @author ghostsf
 * @date 2024-05-19
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class Live extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /** ID */
    private Integer id;

    /** 所属用户id */
    private String userId;

    /** 直播标题 */
    private String title;

    /** 直播详情 */
    private String detail;

    /** 观看密码 */
    private String password;

    /** 直播开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /** 直播结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 水印台标 */
    private String waterLogo;

    /** 水印时间 */
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Integer waterTime;

    /** 水印会场名 */
    private String waterName;

    /** 观众水印 */
    private String audienceWater;

    /** 状态 0 WAIT，1 LIVING，2 PAUSE，3 END */
    private Integer status;

    private String statusName;

    public String getStatusName() {
        if(this.status == null) {
            return "";
        }
        switch (this.status) {
            case 0: return "就绪";
            case 1: return "直播中";
            case 2: return "暂停";
            case 3: return "结束";
            default: return "";
        }
    };

    /** 推流地址 */
    private String pushUrl;

    /** 拉流地址 */
    private String pullUrl;

    /** 小鱼会议号 */
    private String xyMeetingNumber;

    /** 小鱼直播ID */
    private String xyLiveId;

    /** 好视通会议号 */
    private String hstMeetingId;

    /** 好视通直播id */
    private Integer hstLiveId;

    /** 好视通直播推流平台id */
    private Integer hstLivePlatformId;

    /** 观看数 */
    private Integer viewCount;

    /** 时长毫秒 */
    private Long duration;

    /** 时长毫秒 */
    private String durationText;

    /** 是否删除 */
    private Integer isDelete;
}
